package com.acme.bankapp.domain.bank;

import java.io.*;

import com.acme.bankapp.domain.exception.*;

/**
 * Interface for account classes
 * @author alex
 */
public interface Account extends Serializable {
	/**
	 * @return the balance
	 */
	double getBalance();
	
	/**
	 * @param x the money
	 */
	void deposit(double x);
	
	/**
	 * @param x the money
	 * @throws NotEnoughFundsException 
	 */
	void withdraw(double x) throws NotEnoughFundsException;
	
	/**
	 * @return the maximum amount to withdraw
	 */
	double maximumAmountToWithdraw();
	
	/**
	 * @return the decimal value of balance
	 */
	long decimalValue();
}
